高等数学

您所在的位置:网站首页 求导 分式 高等数学

高等数学

2024-02-19 04:23| 来源: 网络整理| 查看: 265

本文始发于个人公众号:TechFlow,原创不易,求个关注

上一篇文章我们复习了函数求导的定义和一些常见函数的导数,今天这篇文章我们回顾一下复杂函数的求导方法。先强调一下,今天的文章很重要,想要看懂机器学习各种公式推导,想要能够自己推一推各种公式,函数求导是基础中的基础,在算法这个领域,它比积分要重要得多。

我们先来看第一种情况:多个函数进行四则运算的导数。

函数四则运算求导法则

我们假设 u = u ( x ) u=u(x) u=u(x)和 v = v ( x ) v=v(x) v=v(x)都在x点有导数,那么它们进行加减乘除四则运算之后的结果的导数有如下性质:

[ u ( x ) ± v ( x ) ] ′ = u ′ ( x ) ± v ′ ( x ) [ u ( x ) v ( x ) ] ′ = u ′ ( x ) v ( x ) + u ( x ) v ′ ( x ) [ u ( x ) v ( x ) ] = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) v 2 ( x ) ( v ( x ) ≠ 0 ) \begin{aligned} \left[u(x) \pm v(x)\right]'&= u'(x) \pm v'(x) \\ \left[u(x)v(x)\right]' &= u'(x)v(x) + u(x)v'(x) \\ \left[\frac{u(x)}{v(x)}\right] &= \frac{u'(x)v(x)-u(x)v'(x)}{v^2(x)} (v(x) \neq 0) \end{aligned} [u(x)±v(x)]′[u(x)v(x)]′[v(x)u(x)​]​=u′(x)±v′(x)=u′(x)v(x)+u(x)v′(x)=v2(x)u′(x)v(x)−u(x)v′(x)​(v(x)​=0)​

我们来看一下证明过程,熟悉证明过程并不是炫技,除了能加深对公式的理解之外,更重要的是防止遗忘。即使以后真的不记得公式的细节了,也可以临时推导一下,这是学算法和数学很重要的技巧。

我们先来看第一个,第一个很容易证明,我们直接套一下导数的公式即可:

[ u ( x ) ± v ( x ) ] ′ = lim ⁡ Δ x → 0 [ u ( x + Δ x ) ± v ( x + Δ x ) ] − [ u ( x ) ± v ( x ) ] Δ x = lim ⁡ Δ x → 0 u ( x + Δ x ) Δ x ± lim ⁡ Δ x → 0 v ( x + Δ x ) Δ x = u ′ ( x ) ± v ′ ( x ) \begin{aligned} \left[u(x) \pm v(x) \right]' &= \lim_{\Delta x \to 0} \frac{\left[u(x+\Delta x) \pm v(x + \Delta x) \right] - \left[u(x) \pm v(x) \right] }{\Delta x} \\ &= \lim_{\Delta x \to 0}\frac{u(x+\Delta x)}{\Delta x} \pm \lim_{\Delta x \to 0} \frac{v(x+\Delta x)}{\Delta x} \\ &= u'(x) \pm v'(x) \end{aligned} [u(x)±v(x)]′​=Δx→0lim​Δx[u(x+Δx)±v(x+Δx)]−[u(x)±v(x)]​=Δx→0lim​Δxu(x+Δx)​±Δx→0lim​Δxv(x+Δx)​=u′(x)±v′(x)​

第二个式子同样套用公式:

[ u ( x ) v ( x ) ] ′ = lim ⁡ Δ x → 0 u ( x + Δ x ) v ( x + Δ x ) − u ( x ) v ( x ) Δ x = lim ⁡ Δ x → 0 u ( x + Δ x ) v ( x + Δ x ) − u ( x ) v ( x + Δ x ) + u ( x ) v ( x + Δ x ) − u ( x ) v ( x ) Δ x = lim ⁡ Δ x → 0 ( u ( x + Δ x ) − u ( x ) ) v ( x + Δ x ) + u ( x ) ( v ( x + Δ x ) − v ( x ) ) Δ x = lim ⁡ Δ x → 0 v ( x + Δ x ) u ( x + Δ x ) − u ( x ) Δ x + lim ⁡ Δ x → 0 u ( x ) v ( x + Δ x ) − v ( x ) Δ x = v ( x + Δ x ) u ′ ( x ) + u ( x ) v ′ ( x ) = u ( x ) v ′ ( x ) + u ′ ( x ) v ( x ) \begin{aligned} \left[u(x)v(x)\right]' &= \lim_{\Delta x \to 0} \frac{u(x+\Delta x) v(x + \Delta x) - u(x) v(x)}{\Delta x} \\ &= \lim_{\Delta x \to 0} \frac{u(x+\Delta x) v(x + \Delta x) - u(x)v(x+ \Delta x) + u(x)v(x+\Delta x) - u(x) v(x)}{\Delta x} \\ &= \lim_{\Delta x \to 0} \frac{(u(x+\Delta x) - u(x))v(x+\Delta x) + u(x)(v(x+\Delta x) - v(x))}{\Delta x} \\ &= \lim_{\Delta x \to 0}v(x+\Delta x) \frac{u(x+\Delta x) - u(x)}{\Delta x} + \lim_{\Delta x \to 0}u(x)\frac{v(x+\Delta x) - v(x)}{\Delta x}\\ &=v(x+\Delta x)u'(x) + u(x)v'(x) \\ &=u(x)v'(x) + u'(x)v(x) \end{aligned} [u(x)v(x)]′​=Δx→0lim​Δxu(x+Δx)v(x+Δx)−u(x)v(x)​=Δx→0lim​Δxu(x+Δx)v(x+Δx)−u(x)v(x+Δx)+u(x)v(x+Δx)−u(x)v(x)​=Δx→0lim​Δx(u(x+Δx)−u(x))v(x+Δx)+u(x)(v(x+Δx)−v(x))​=Δx→0lim​v(x+Δx)Δxu(x+Δx)−u(x)​+Δx→0lim​u(x)Δxv(x+Δx)−v(x)​=v(x+Δx)u′(x)+u(x)v′(x)=u(x)v′(x)+u′(x)v(x)​

最后是第三个式子的推导,也并不复杂:

[ u ( x ) v ( x ) ] = lim ⁡ Δ x → 0 u ( x + Δ x ) v ( x + Δ x ) − u ( x ) v ( x ) Δ x = lim ⁡ Δ x → 0 v ( x ) u ( x + Δ x ) − v ( x + Δ x ) u ( x ) v ( x + Δ x ) v ( x ) Δ x = lim ⁡ Δ x → 0 = lim ⁡ Δ x → 0 v ( x ) u ( x + Δ x ) − v ( x ) u ( x ) + v ( x ) u ( x ) − v ( x + Δ x ) u ( x ) v ( x + Δ x ) v ( x ) Δ x = lim ⁡ Δ x → 0 u ( x + Δ x ) − u ( x ) Δ x v ( x ) − v ( x + Δ x ) − v ( x ) Δ x u ( x ) v ( x + Δ x ) v ( x ) = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) v 2 ( x ) \displaystyle \begin{aligned} \left[\frac{u(x)}{v(x)}\right] &= \lim_{\Delta x \to 0}\frac{\frac{u(x+\Delta x)}{v(x+\Delta x)} - \frac{u(x)}{v(x)}}{\Delta x} \\ &= \lim_{\Delta x \to 0}\frac{v(x)u(x+\Delta x)-v(x+\Delta x)u(x)}{v(x+\Delta x)v(x)\Delta x} \\ &=\lim_{\Delta x \to 0} \\ &= \lim_{\Delta x \to 0}\frac{v(x)u(x+\Delta x)-v(x)u(x)+v(x)u(x)-v(x+\Delta x)u(x)}{v(x+\Delta x)v(x)\Delta x} \\ &=\lim_{\Delta x \to 0} \frac{\frac{u(x+\Delta x)-u(x)}{\Delta x}v(x)-\frac{v(x+\Delta x)-v(x)}{\Delta x}u(x)}{v(x+\Delta x)v(x)}\\ &=\frac{u'(x)v(x)-u(x)v'(x)}{v^2(x)} \end{aligned} [v(x)u(x)​]​=Δx→0lim​Δxv(x+Δx)u(x+Δx)​−v(x)u(x)​​=Δx→0lim​v(x+Δx)v(x)Δxv(x)u(x+Δx)−v(x+Δx)u(x)​=Δx→0lim​=Δx→0lim​v(x+Δx)v(x)Δxv(x)u(x+Δx)−v(x)u(x)+v(x)u(x)−v(x+Δx)u(x)​=Δx→0lim​v(x+Δx)v(x)Δxu(x+Δx)−u(x)​v(x)−Δxv(x+Δx)−v(x)​u(x)​=v2(x)u′(x)v(x)−u(x)v′(x)​​

反函数求导法则

推导完了四则运算的求导法则,我们再来看一下反函数的求导法则。

我们陷在了看结论,如果函数 x = f ( y ) x=f(y) x=f(y)在区间 I y I_y Iy​内单调、可导并且 f ′ ( x ) ! = 0 f'(x)!=0 f′(x)!=0,那么它的反函数 y = f − 1 ( x ) y=f^{-1}(x) y=f−1(x)在区间 I x = { x ∣ x = f ( y ) , y ∈ I y } I_x=\{x|x=f(y), y\in I_y\} Ix​={x∣x=f(y),y∈Iy​}内也可导,那么:

[ f − 1 ( x ) ] ′ = 1 f ′ ( y ) \left[f^{-1}(x)\right]'=\frac{1}{f'(y)} [f−1(x)]′=f′(y)1​

关于这个结论的证明很简单,因为 x = f ( y ) x=f(y) x=f(y)在区间内单调、可导,所以它的反函数 y = f − 1 ( x ) y=f^{-1}(x) y=f−1(x)存在,并且也单调且连续。

所以:

Δ y = f − 1 ( x + Δ x ) − f − 1 x ≠ 0 Δ y Δ x = 1 Δ x Δ y = 1 f ′ ( y ) \begin{aligned} \Delta y=f^{-1}(x+\Delta x)-f^{-1}x \neq 0 \\ \frac{\Delta y}{\Delta x} = \frac{1}{\frac{\Delta x}{\Delta y}}=\frac{1}{f'(y)} \end{aligned} Δy=f−1(x+Δx)−f−1x​=0ΔxΔy​=ΔyΔx​1​=f′(y)1​​

由于 y = f − 1 ( x ) y=f^{-1}(x) y=f−1(x)连续, lim ⁡ Δ x → 0 Δ y = 0 \displaystyle\lim_{\Delta x \to 0}\Delta y=0 Δx→0lim​Δy=0,所以上式成立。

我们来看一个例子: x = sin ⁡ y , y ∈ [ − π 2 , π 2 ] x=\sin y, y\in \left[-\frac{\pi}{2}, \frac{\pi}{2} \right] x=siny,y∈[−2π​,2π​],则 y = arcsin ⁡ x y=\arcsin x y=arcsinx是它的反函数,根据上面的公式,我们可以得到:

( arcsin ⁡ x ) ′ = 1 ( sin ⁡ y ) ′ = 1 cos ⁡ y (\arcsin x)'=\frac{1}{(\sin y)'}=\frac{1}{\cos y} (arcsinx)′=(siny)′1​=cosy1​

由于 cos ⁡ y = 1 − sin ⁡ 2 y = 1 − x 2 \cos y= \sqrt{1-\sin^2 y} = \sqrt{1-x^2} cosy=1−sin2y ​=1−x2 ​,代入上式可以得到:

( arcsin ⁡ x ) ′ = 1 1 − x 2 (\arcsin x)'=\frac{1}{\sqrt{1-x^2}} (arcsinx)′=1−x2 ​1​

利用同样的方法,我们还可以求出其他反三角函数的导数,由于这些并不太常用,所以我们就不多介绍了,感兴趣的同学可以自己利用导数的定义推导一下,我想应该也不难。

复合函数求导

这是最后一个法则,也是本篇文章的重点,因为经常用到。我们现在已经搞定了一些常见的函数,还搞定了常见函数加减乘除之后求导的结果,但是对于一些看起来比较复杂的函数,我们并不能一下写出它们的导数。

比如说: sin ⁡ ( x 2 + 3 x ) \sin (x^2+3x) sin(x2+3x),比如 ln ⁡ ( 3 x − 1 ) \ln (3x -1) ln(3x−1)等等,这些函数基本上都可以确定是连续并且可导的,但是我们一下子并不能写出它们的导数,而且要通过导数的定义推导也非常麻烦,对于这些导数就需要用到今天的重头戏,也就是复合函数的求导法则了。

对于复合函数而言,拥有如下法则:如果函数 u = g ( x ) u=g(x) u=g(x)在点x处可导,并且 y = f ( u ) y=f(u) y=f(u)在点 u = g ( x ) u=g(x) u=g(x)处也可导,那么复合函数 y = f [ g ( x ) ] y=f[g(x)] y=f[g(x)]在x处可导,它的导数为:

d y d x = f ′ ( u ) ⋅ g ′ ( x ) = d y d u ⋅ d u d x \frac{dy}{dx}=f'(u)\cdot g'(x)=\frac{dy}{du}\cdot \frac{du}{dx} dxdy​=f′(u)⋅g′(x)=dudy​⋅dxdu​

如果复合函数的数量更多也是一样的,我们按照顺序依次相乘即可。由于公式的形式像是一根链条一样依次所以,复合函数求导法则也叫链式求导法则。在举例之前,我们先来证明一下。

由于 y = f ( u ) y=f(u) y=f(u)在点u处可导,因此

lim ⁡ Δ u → 0 Δ y Δ u = f ′ ( u ) \displaystyle\lim_{\Delta u \to 0}\frac{\Delta y}{\Delta u} = f'(u) Δu→0lim​ΔuΔy​=f′(u)

因为 f ′ ( u ) f'(u) f′(u)存在,所以我们将它变形为:

Δ y Δ u = f ′ ( u ) + a \frac{\Delta y}{\Delta u} = f'(u) + a ΔuΔy​=f′(u)+a

其中a是 Δ u → 0 \Delta u \to 0 Δu→0时的无穷小,我们对两边同时乘上 Δ u \Delta u Δu,可以得到:

Δ y = f ′ ( u ) Δ u + a ⋅ Δ u \Delta y = f'(u)\Delta u + a\cdot \Delta u Δy=f′(u)Δu+a⋅Δu

上式当中 Δ u \Delta u Δu和a都是无穷小,所以当 Δ u → 0 \Delta u \to 0 Δu→0时, Δ y = 0 \Delta y=0 Δy=0,我们对上式两边同时除以 Δ x \Delta x Δx,得:

Δ y Δ x = f ′ ( u ) Δ u Δ x + a ⋅ Δ u Δ x \displaystyle\frac{\Delta y}{\Delta x}=f'(u)\frac{\Delta u}{\Delta x} + a\cdot\frac{\Delta u}{\Delta x} ΔxΔy​=f′(u)ΔxΔu​+a⋅ΔxΔu​

于是:

lim ⁡ Δ x → 0 Δ y Δ x = lim ⁡ Δ x → 0 [ f ′ ( u ) Δ u Δ x + a Δ u Δ x ] \displaystyle \lim_{\Delta x \to 0}\frac{\Delta y}{\Delta x}=\lim_{\Delta x \to 0}[f'(u)\frac{\Delta u}{\Delta x}+a\frac{\Delta u}{\Delta x}] Δx→0lim​ΔxΔy​=Δx→0lim​[f′(u)ΔxΔu​+aΔxΔu​]

又根据 u = g ( x ) u=g(x) u=g(x)在点x处可导,所以有:

lim ⁡ Δ x → 0 Δ u Δ x = g ′ ( x ) \displaystyle \lim_{\Delta x \to 0}\frac{\Delta u}{\Delta x}=g'(x) Δx→0lim​ΔxΔu​=g′(x)

我们代入,就可以得到:

lim ⁡ Δ x → 0 Δ y Δ x = f ′ ( u ) ⋅ Δ u Δ x = f ′ ( u ) ⋅ g ′ ( x ) \displaystyle \lim_{\Delta x \to 0}\frac{\Delta y}{\Delta x}=f'(u)\cdot \frac{\Delta u}{\Delta x}=f'(u)\cdot g'(x) Δx→0lim​ΔxΔy​=f′(u)⋅ΔxΔu​=f′(u)⋅g′(x)

其实我们都知道相比于公式的证明,公式的运用更加重要,下面我们就来看两个例子,来巩固一下这个链式求导法则:

y = ln ⁡ sin ⁡ 3 x y=\ln \sin 3x y=lnsin3x,求 d y d x \frac{dy}{dx} dxdy​

我们令 u = 3 x , g = sin ⁡ u u=3x, g=\sin u u=3x,g=sinu

所以:

d y d x = d y d g ⋅ d g d u ⋅ d u d x = 1 g ⋅ cos ⁡ u ⋅ 3 = 3 cos ⁡ 3 x sin ⁡ 3 x = 3 cot ⁡ 3 x \begin{aligned} \frac{dy}{dx}&=\frac{dy}{dg}\cdot \frac{dg}{du}\cdot\frac{du}{dx}\\ &=\frac{1}{g}\cdot \cos u\cdot 3\\ &=3\frac{\cos 3x}{\sin 3x} \\ &=3 \cot 3x \end{aligned} dxdy​​=dgdy​⋅dudg​⋅dxdu​=g1​⋅cosu⋅3=3sin3xcos3x​=3cot3x​

还记得我们之前推导线性回归时候用到的均方差的公式吗:

f ( θ ) = 1 m ( θ X − Y ) 2 f(\theta) = \frac{1}{m}(\theta X-Y)^2 f(θ)=m1​(θX−Y)2

我们来试着学以致用,求一下 f ( θ ) f(\theta) f(θ)的导数,在机器学习当中,X和Y都是样本都是已知的参数,要求的是 θ \theta θ,所以我们对 θ \theta θ求导:

f ′ ( θ ) = 1 m ⋅ 2 ⋅ ( θ X − Y ) ⋅ X = 2 m X T ( θ X − Y ) \begin{aligned} f'(\theta) &= \frac{1}{m}\cdot 2 \cdot (\theta X - Y)\cdot X \\ &=\frac{2}{m}X^T(\theta X - Y) \end{aligned} f′(θ)​=m1​⋅2⋅(θX−Y)⋅X=m2​XT(θX−Y)​

这个结果其实就是之前我们说的梯度,梯度本来就是由导数计算得到的,所以理解了链式求导的公式,可以再回过头看看之前线性回归和梯度推导的公式,相信会有更深刻的体会。

今天的文章篇幅有些长,但是除去证明之后,剩下的内容并不多,重要的是它的应用范围很广,所以希望大家都能学会。

如果觉得有所收获,请顺手扫码点个关注吧,你们的举手之劳对我来说很重要。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3